iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
Software Development

30天收斂後端開發心法系列 第 23

30天收斂後端開發心法 - (23) 網路基礎架構

  • 分享至 

  • xImage
  •  

在請求與權限處理完成後,下一步就是將資料透過網路送到伺服器。

我們在前面已經看過 HTTP 協定,但「網路」的概念不只是 HTTP 而已。
這裡來整理一下大家常聽到的「七層 OSI 模型」與「四層 TCP/IP 模型」,幫助理解資料從應用程式發出後,經過哪些處理流程才能送達對方主機。

https://ithelp.ithome.com.tw/upload/images/20250816/20177709eNyDes1SUZ.png

OSI 七層模型

7. 應用層(Application Layer)

我的理解就是這層是「協定層」,負責處理像 HTTP、SMTP、FTP 這類協定。

也就是說,它處理「應用邏輯」與「用戶互動」相關的資料,例如你打開網頁、發送 Email,這些請求都會透過應用層協定處理。

6. 呈現層(Presentation Layer)

負責將資料「轉譯、壓縮、加密」,轉成符合應用層的格式。

像是資料從伺服器送過來是二進位,但你看到的是 JSON、HTML,那這中間的格式轉換就屬於呈現層工作。
此外,也會進行加解密,例如 TLS/SSL 的加密動作,不過實務上這通常在應用層內的加密協定(如 HTTPS)中完成。

5. 工作階段層(Session Layer)

負責建立、管理與維持「會話連線」。

簡單來說,就是確保雙方有持續的連線狀態。舉例來說:如果一個檔案有 50MB,中途斷線了,會話層能幫助系統記住進度,下次重新連線能接續傳輸,而不是重頭來過。

4. 傳輸層(Transport Layer)

負責傳輸控制,最常見的協定是 TCP 與 UDP。

TCP(Transmission Control Protocol):
有所謂的「三次握手」來建立穩定連線,確保資料完整送達,順序不錯亂。

** UDP(User Datagram Protocol):**
比較像是「寄明信片」,只管送出,不保證收到。常用於語音或影音串流,講求速度而不是可靠性。

3. 網路層(Network Layer)

負責封包的邏輯位址(IP)與路由。

也就是幫資料找出傳送的路徑,像是要透過哪個網關、哪些節點轉送,目的是讓資料從 A 主機走到 B 主機。
協定例如:IP、ICMP(例如 ping 指令就是用 ICMP)。

2. 資料連結層(Data Link Layer)

處理資料的實體位址(MAC)與錯誤偵測。

這一層會在區域網路(例如家裡的 Wi-Fi 或公司內網)中處理封包的「點對點傳輸」。
例如你的筆電要把封包送給同一個區網中的列印機,就靠這層來處理。

1. 實體層(Physical Layer)

負責實際的「訊號傳輸」。

包含網卡、網路線、光纖、無線電波等。這層傳輸的是位元(bit),而不是封包(packet)。

TCP/IP 四層模型

TCP/IP 模型是更貼近現實使用的網路架構,也更簡潔,四層如下:

1. 應用層(Application)

等同於 OSI 的應用層、表示層、會話層。

包含常見的應用協定,如:

  • HTTP/HTTPS
  • SMTP
  • FTP
  • DNS

2. 傳輸層(Transport)

與 OSI 的傳輸層對應,主要使用:

  • TCP(可靠,順序保證)
  • UDP(不可靠,但速度快)

3. 網路層(Internet)

對應 OSI 的網路層,負責 IP 位址與路由功能。
像是:

  • IPv4、IPv6
  • ICMP(用於錯誤通知,例如 ping)
  • IPv6 是為了解決 IPv4 位址枯竭的問題,提供更多的位址空間與強化的安全性。

4. 網路存取層(Network Access)

結合了 OSI 的資料連結層與實體層。
實際操作中會涉及:

  • Ethernet(乙太網路)
  • Wi-Fi
  • 實體傳輸設備(Switch、AP、Router)

總結

  • OSI 是理論模型,層次分得很細;
  • TCP/IP 是實際實作時的簡化版本。

是哪一層出問題了?

  • DNS 查不到?→ 應用層
  • 資料亂序?→ 傳輸層(可能是 UDP)
  • Ping 不通?→ 網路層(IP 或路由問題)
  • 網卡沒抓到?→ 實體層

上一篇
30天收斂後端開發心法 - (22) OAuth 2.0
下一篇
30天收斂後端開發心法 - (24) 防火牆
系列文
30天收斂後端開發心法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言